import install from './install'
import createMatcher from './create-matcher'
import HTML5History from './history'
import Hash from './history/h5'

class VueRouter {
    constructor(options={}){
        // 根据用户传递的routes创建匹配关系,this.matcher需要提供两个方法 
        // match：match方法用来匹配规则
        // addRoutes：用来动态添加路由
        this.matcher = createMatcher(options.routes ||[])
        
        // 根据模式需要初始化不同的路由系统  hash/history 底层实现不一样 ，但是使用的方式是一样的
        // hash => hash.js  => push
        // history => history.js => push
        // base

        // 每次跳转 我需要获取当前的路径 this.$router.pathname
        switch(this.mode) {
            case 'hash': // location.hash  => push
                this.history = new Hash(this)
                break
            case 'history': // pushState => push
                this.history = new HTML5History(this); 
                break

        }
    }
    init(componentsInstance){
        // console.log(componentsInstance)
    }
}
VueRouter.install = install


export default VueRouter; 